/**
 * @copyright Copyright (c) 2025 CSG Digital Grid Technology (Guangdong) Co., Ltd.
 * @author Chen Yongjie
 */
#ifndef __TEST_UART_H
#define __TEST_UART_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <CUnit/CUnit.h>
#include "uart.h"
#include <stdint.h> 
// 测试set_opt函数的各种情况
void test_set_opt_normal(void);
void test_set_opt_invalid_fd(void);
void test_set_opt_invalid_baudrate(void);
void test_set_opt_invalid_wordlength(void);
void test_set_opt_invalid_parity(void);
void test_set_opt_invalid_stopbit(void);

// 测试uart_init函数的各种情况
void test_uart_init_normal(void);
void test_uart_init_invalid_port(void);
void test_uart_init_invalid_baudrate(void);
void test_uart_init_invalid_wordlength(void);
void test_uart_init_invalid_parity(void);
void test_uart_init_invalid_stopbit(void);
void test_uart_init_null_port(void);

// 测试serial_send函数的各种情况
void test_serial_send_normal(void);
void test_serial_send_null_buffer(void);
void test_serial_send_zero_length(void);
void test_serial_send_invalid_fd(void);

// 测试serial_recv函数的各种情况
void test_serial_recv_normal(void);
void test_serial_recv_null_buffer(void);

// 测试uart_destory函数的各种情况
void test_uart_destory_multiple_calls(void);

// 测试串口高频操作和不同配置的情况
void test_uart_high_frequency_operations(void);
void test_uart_different_baudrates(void);
void test_uart_different_parity(void);

#endif /* __TEST_UART_H */